﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyNhanVien.BusinessLogicLayer;
using QuanLyNhanVien.DataAccessLayer;

namespace QuanLyNhanVien.PresentationLayer
{
    public partial class NhapNhanVien : UserControl
    {
        public NhapNhanVien()
        {
            InitializeComponent();
        }
        
        NhanVienCTL nvCTL;
        NhanVienDTO NhanVienHienTai;
        void HienThiDanhSachNhanVien()
        {
            List<NhanVienDTO> dt = nvCTL.getDsNhanVien();
            dgv_DSNV.DataSource = dt;  
        }

        private void NhapNhanVien_Load(object sender, EventArgs e)
        {
            nvCTL = new NhanVienCTL();
            NhanVienHienTai = new NhanVienDTO();
            HienThiDanhSachNhanVien();
        }

        private void label_MANV_Click(object sender, EventArgs e)
        {

        }


        private void button_Them_Click(object sender, EventArgs e)
        {
            try
            {
                nvCTL.NhanVien.MANV = textBox_MANV.Text;
                nvCTL.NhanVien.HoTenLot = textBox_HoTenLot.Text;
                nvCTL.NhanVien.TenNV = textBox_TenNV.Text;
                nvCTL.NhanVien.NgaySinh = textBox_NgaySinh.Text;
                nvCTL.NhanVien.Phai = textBox_Phai.Text;
                nvCTL.NhanVien.DiaChi = textBox_DiaChi.Text;
                nvCTL.NhanVien.Luong = int.Parse(textBox_Luong.Text);
                nvCTL.NhanVien.PHG = textBox_PHG.Text;
                nvCTL.NhanVien.MA_NQL = textBox_MA_NQL.Text;
                nvCTL.NhanVien.SoThanNhan = int.Parse(textBox_SoThanNhan.Text);
                nvCTL.NhanVien.NgayNhanChuc = textBox_NgayNhanChuc.Text;
            }
            catch (Exception ex)
            {
                return;
            }

            bool ketqua = nvCTL.insert();
            HienThiDanhSachNhanVien();

            if (ketqua)
                MessageBox.Show("Thêm Nhân viên thành công!", "Thông báo");
            else
                MessageBox.Show("Thêm Nhân viên thất bại!", "Thông báo");
        }

        private void dgv_DSNV_SelectionChanged(object sender, EventArgs e)
        {
            if (dgv_DSNV.SelectedRows.Count > 0)
            {
                NhanVienHienTai.MANV = (string)dgv_DSNV.SelectedRows[0].Cells[0].Value;
                NhanVienHienTai.HoTenLot = (string)dgv_DSNV.SelectedRows[0].Cells[1].Value;
                NhanVienHienTai.TenNV = (string)dgv_DSNV.SelectedRows[0].Cells[2].Value;
                NhanVienHienTai.NgaySinh = (string)dgv_DSNV.SelectedRows[0].Cells[3].Value;
                NhanVienHienTai.DiaChi = (string)dgv_DSNV.SelectedRows[0].Cells[4].Value;
                NhanVienHienTai.Phai = (string)dgv_DSNV.SelectedRows[0].Cells[5].Value;
                NhanVienHienTai.Luong = (int)dgv_DSNV.SelectedRows[0].Cells[6].Value;
                NhanVienHienTai.PHG = (string)dgv_DSNV.SelectedRows[0].Cells[7].Value;
                NhanVienHienTai.MA_NQL = (string)dgv_DSNV.SelectedRows[0].Cells[8].Value;
                NhanVienHienTai.SoThanNhan = (int)dgv_DSNV.SelectedRows[0].Cells[9].Value;
                NhanVienHienTai.NgayNhanChuc = (string)dgv_DSNV.SelectedRows[0].Cells[10].Value;


                textBox_MANV.Text = NhanVienHienTai.MANV;
                textBox_HoTenLot.Text = NhanVienHienTai.HoTenLot;
                textBox_TenNV.Text = NhanVienHienTai.TenNV;
                textBox_NgaySinh.Text = NhanVienHienTai.NgaySinh;
                textBox_DiaChi.Text = NhanVienHienTai.DiaChi;
                textBox_Phai.Text = NhanVienHienTai.Phai;
                textBox_Luong.Text = NhanVienHienTai.Luong.ToString();
                textBox_PHG.Text = NhanVienHienTai.PHG;
                textBox_MA_NQL.Text = NhanVienHienTai.MA_NQL;
                textBox_SoThanNhan.Text = NhanVienHienTai.SoThanNhan.ToString();
                textBox_NgayNhanChuc.Text = NhanVienHienTai.NgayNhanChuc;
            }

        }

        private void dgv_DSNV_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button_Xoa_Click(object sender, EventArgs e)
        {
            if (textBox_MANV.Text == "")
                return;
            nvCTL.NhanVien.MANV = textBox_MANV.Text;
            

            bool ketqua = nvCTL.delete();

            if (ketqua)
            {
                MessageBox.Show("Xóa Nhân viên thành công", "Thông báo");
                HienThiDanhSachNhanVien();
            }
            else
                MessageBox.Show("Xóa Nhân viên thất bại", "Thông báo");
        }

        private void button_Sua_Click(object sender, EventArgs e)
        {
            try
            {
                string manv = (string)dgv_DSNV.SelectedRows[0].Cells[0].Value;

                if (manv != textBox_MANV.Text)
                {
                    MessageBox.Show("Không thể thay đổi MANV", "Thông báo");
                    return;
                }

                nvCTL.NhanVien.MANV = textBox_MANV.Text;
                nvCTL.NhanVien.HoTenLot = textBox_HoTenLot.Text;
                nvCTL.NhanVien.TenNV = textBox_TenNV.Text;
                nvCTL.NhanVien.NgaySinh = textBox_NgaySinh.Text;
                nvCTL.NhanVien.DiaChi = textBox_DiaChi.Text;
                nvCTL.NhanVien.Phai = textBox_Phai.Text;
                nvCTL.NhanVien.Luong = int.Parse(textBox_Luong.Text);
                nvCTL.NhanVien.PHG = textBox_PHG.Text;
                nvCTL.NhanVien.MA_NQL = textBox_MA_NQL.Text;
                nvCTL.NhanVien.SoThanNhan = int.Parse(textBox_SoThanNhan.Text);
                nvCTL.NhanVien.NgayNhanChuc = textBox_NgayNhanChuc.Text;
            }
            catch (Exception ex)
            {
                return;
            }

            bool ketqua = nvCTL.update();

            if (ketqua)
            {
                MessageBox.Show("Sửa Nhân viên thành công", "Thông báo");
                HienThiDanhSachNhanVien();
            }
            else
                MessageBox.Show("Sửa Nhân viên thất bại", "Thông báo");
        }

        private void button_Thoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void button_refresh_Click(object sender, EventArgs e)
        {
            HienThiDanhSachNhanVien();
        }

        private void button_Export_Click(object sender, EventArgs e)
        {
            NhanVienCTL nvCTL;
            nvCTL = new NhanVienCTL();
            List<NhanVienDTO> listNV = nvCTL.getDsNhanVien();

            DataTable dt = new DataTable();
            dt = Helper.ListToDataTable<NhanVienDTO>(listNV);

            Helper.ExportDataTableToExcel(dt, null);
        }

        private void button_TinhLuongThang_Click(object sender, EventArgs e)
        {
            int Thang = int.Parse(textBox_Thang.Text);
            int Nam = int.Parse(textBox_Nam.Text);

            //Goi WerService, truyền vào NhanVienHienTai, soNgayNghi
            try
            {
                int luong = nvCTL.TinhLuong(int.Parse(NhanVienHienTai.MANV), Thang, Nam);
                MessageBox.Show("Lương nhân viên: " + luong.ToString());
            }
            catch (Exception ex)
            { }

        }



    }
}
